Link layer multicasting systems and methods

ABSTRACT

Beamforming systems and methods are disclosed. In accordance with one method, indications of channel matrices for a plurality of receivers are obtained. Further, a beamformer matrix is formulated as a linear combination of columns of hermitians of the channel matrices. In addition, coefficients of the hermitians in the linear combination are determined to compute the beamformer matrix such that a lowest reception rate among reception rates of each of the receivers is maximized. Data signals are transmitted to the receivers by applying the computed beamformer matrix to data symbols to maximize the lowest reception rate.

RELATED APPLICATION INFORMATION

This application claims priority to provisional application Ser. No. 61/369,332 filed on Jul. 30, 2010 and to provisional application Ser. No. 61/447,374 Feb. 28, 2011, each of which is incorporated herein by reference.

This application is related to commonly owned application serial no. ______ (Attorney Docket Number 10104 (449-203), entitled ‘BEAMFORMING SYSTEMS AND METHODS FOR LINK LAYER MULTICASTING’), which is filed concurrently herewith and is incorporated herein by reference.

BACKGROUND

1. Technical Field

The present invention relates to wireless communications and, more particularly, to beamforming methods and systems.

2. Description of the Related Art

The proliferation of mobile devices has increased the demand for applications (streaming media, software updates, etc.) and services (location-based, social networking, etc.) involving group communications. To support such applications, designs of efficient link layer wireless multicasting solutions are needed. The advancement in antenna array technology and the associated mechanisms that it enables (MIMO, beamforming, etc.) have become a standard feature in next generation broadband access networks (WiMAX, LTE-Adv). In beamforming, the signal is transmitted using a beam pattern that reinforces the signal towards the desired client, while minimizing the leakage of signal power in undesired directions. Given that the multicast performance is largely determined by the bottleneck client (with poor channel conditions) in the group, beamforming is an attractive candidate for multicasting, as it can improve the channel conditions of the bottleneck client. However, a beamforming vector optimized for one client may not be effective for another client. Given that multiple clients should be served simultaneously in multicast systems, an effective solution should balance the beamforming benefits with the ability to effectively cover multiple clients.

SUMMARY

One embodiment is directed to a beamforming method. In accordance with the method, indications of channel matrices for a plurality of receivers are obtained. Further, a beamformer matrix is formulated as a linear combination of columns of hermitians of the channel matrices. In addition, coefficients of the hermitians in the linear combination are determined to compute the beamformer matrix such that a lowest reception rate among reception rates of each of the receivers is maximized. Data signals are transmitted to the receivers by applying the computed beamformer matrix to data symbols to maximize the lowest reception rate.

Another embodiment is directed to a computer readable storage medium comprising a computer readable program. The computer readable program, when executed on a computer, causes the computer to perform a beamforming method. In accordance with the method, indications of channel matrices for a plurality of receivers are obtained. Further, a beamformer matrix is formulated as a linear combination of columns of hermitians of the channel matrices. In addition, coefficients of the hermitians in the linear combination are determined to compute the beamformer matrix such that a lowest reception rate among reception rates of each of the receivers is maximized. The computed beamformer matrix is applied to data symbols to generate transmit signals that maximize the lowest reception rate.

An alternative embodiment is also directed to a beamforming method. The method includes determining a receiver that has a lowest reception rate among reception rates of each of a plurality of receivers by utilizing an expectation over a set of expected channel matrices for multiple time blocks for each of the receivers that is based on a particular beamformer matrix. The particular matrix is incremented by an increment that is based on a gradient of an objective function denoting the reception rate for the determined receiver with respect to the particular beamformer matrix. The determination and the incrementing is iterated until a value based on the increment falls below a threshold to obtain a resultant beamformer matrix. The method further includes transmitting data signals to the receivers by applying the resultant beamformer matrix to data symbols to maximize the lowest reception rate.

These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:

FIG. 1 is a high-level block diagram of an exemplary beamforming system.

FIG. 2 is a high-level block/flow diagram of a base station system and a user/receiver system in accordance with an exemplary embodiment.

FIG. 3 is a high-level block/flow diagram of an embodiment of a method for determining a beamforming matrix.

FIG. 4 is a high-level block/flow diagram of an embodiment of an alternative method for determining a beamforming matrix.

FIG. 5 is a high-level block/flow diagram of an embodiment of an alternative method for determining a beamforming matrix that accounts for a hidden convexity in the optimization problem.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Exemplary embodiments described herein below consider the problem of designing adaptive beamforming solutions where a beamforming vector can be computed on the fly based on channel state information (CSI) fedback from the clients. This problem and subsequent solutions are different from solutions that implement multicasting using switched beamforming where beamforming vectors, which are normally single-lobed directional patterns, are selected from a set that is a priori computed and stored at the transmitter. Switched beamforming solutions do not require CSI and can utilize only the received SNR (signal to noise ratio) at the clients (for each beam in the a priori selected set) as feedback. The problem of designing optimal beamforming vectors for multicasting is difficult, mainly due to its nonconvex nature. Beamformer designs can be categorized into two classes: short-term and long-term beamforming. In the case of short-term beamforming, instantaneous CSI from the clients is available at the transmitter and the objective is to optimize instantaneous performance. Works in this category design the beamformer for a given set of users or jointly optimize admission control and beamformer design. While short-term beamforming aids in understanding the nature of multicast beamforming, it is difficult to enable instantaneous feedback in practical systems. This has led to the importance of long-term beamforming, wherein average CSI estimates are alone available at the transmitter. The objective here is to design a beamformer that can be applied over several frame (packet) transmissions so as to optimize average case performance. Embodiments described herein apply efficient beamformer designs for both short-term and long-term beamforming.

For short-term beamforming, embodiments maximize the minimum instantaneous rate of clients in the group (subject to power constraints), which is equivalent to minimizing the power (subject to rate constraints). An efficient beamforming method that is guided by the KKT (Karush-Kuhn-Tucker) conditions of the primal non-convex problem is described. In particular, as described herein below, the beamforming or precoder matrix can be formulated as a linear combination of channel vectors of the receivers, thereby significantly simplifying its determination. The method finds the coefficients of the linear combination successively by orthogonalizing the channel vectors and calculating the coefficients by successively satisfying the constraint in turn with equality. Moreover, the procedure can find the greedy optimal values for the linear combination by minimizing the norm of the resulting beamforming vector at each step. The greedy nature of the problem enables fast convergence.

To evaluate the efficiency of the method, the corresponding dual convex problem is solved. The dual convex problem serves to bound the performance of the primal. As discussed in more detail below, the duality gap is zero for real channels, in which case the method converges to the optimal solution. For general (complex) channels, the method converges to a solution that is close to the dual bound in practice. Simulations confirm that the greedy method usually converges to a near-optimal point due to its proximity with the dual bound. Further, the method significantly improves upon existing methods both in terms of convergence and performance.

In addition, we uncover and leverage a hidden convexity of the optimization problem under certain channel conditions, which happens frequently for practical systems that behave in accordance with the Rayleigh fading channel model. The condition depends on a matrix defined as a linear function of the dual solution for the given set of user channels and the user channels. Further, the condition is characterized by the multiplicity of the largest eigenvalue of this matrix. To determine the beamformer under these conditions, the dual problem is solved and a uniqueness condition is checked. If satisfied, it is shown that the duality gap is zero and the solution of the primal problem is optimal and is obtained based on the solution of the dual problem. If the uniqueness condition is not satisfied, then the suboptimal greedy approach, which, as indicated above, can be derived based on the optimality conditions from the Lagrangian formulation, can be applied. The method significantly improves the multicast performance over known solutions. Simulation results have shown that, in most scenarios of interest, the method is completed in the first step with high probability. It should be noted that the method may be used to find the optimal solution for some other quadratically constrained quadratic programming (QCQP) optimization problems.

For long-term beamforming, the goal is to maximize the minimum average rate of clients in the group. This is significantly different than maximizing the minimum average SNR. Similar to the short-term beamforming case, an efficient greedy procedure for the beamformer design that outperforms prior methods is described. A dual solution is also provided to bound the performance as well as to establish the efficiency of the greedy procedure.

Referring now in detail to the figures in which like numerals represent the same or similar elements and initially to FIG. 1, an exemplary beamforming system 100 that determines beamformers for multicast transmission of data in accordance with an exemplary embodiment of the present invention is illustrated. As shown in FIG. 1, the system 100 may include a wired network, such as the internet 102, and transmitters or base stations 110, each of which includes a plurality of transmitting antennae to generate beams for transmission of information to receivers. Each transmitter 110 may be configured to employ a multi-user beam 112 to communicate with a plurality of wireless receivers, such as receivers 114 and 116. Although only two receivers are illustrated in FIG. 1, the transmitter 110 can service a large number of receivers in accordance with embodiments described herein.

Referring to FIG. 2, with continuing reference to FIG. 1, exemplary implementations of a base station system 110 and a receiver or user system 114, which can be identical to the receiver system 116, are illustrated. The base station 110 can include a scheduler 304, a controller 306, a storage medium 307, a receiver 308 and a transmitter 309. In addition, the receiver system 114 can include a processor 310, a transmitter 312 and a receiver 313. The base station 110 and the receiver 114 can communicate through one or more uplink control channels 302, on which the receiver can employ a transmitter 312 to transmit control information to the receiver 308 at the base station 104. In turn, the base station 104 can employ the transmitter 309 to transmit data in accordance with the beamforming methods described herein along one or more downlink channels 305 to the receiver 313 in the receiver system 114. The transmitters 309, 312 and the receivers 308, 313 can each be implemented as respective arrays of antennas. Further, the base station system 110 and the receiver system 114 can include respective storage mediums on which programs of instructions can be stored for execution by the controller 306 and processor 310, respectively. The functions of the controller 306 of the system are described in more detail herein below with respect to method embodiments. For example, the methods 200 and/or 400 can be performed by the controller 306 and the transmitter 309. For example, the controller 306 can execute programs of instructions embodying any one or more of the steps of these methods that are stored on its respective storage medium 307.

It should further be understood that aspects of embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in hardware and software, which includes but is not limited to firmware, resident software, microcode, etc.

Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.

A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

1. Channel Model

The problem considered herein is multicasting from a single base station 110 with N_(T) transmit antennas to multiple receivers, for example, receivers 114 and 116, each with N_(R) receive antennas. Narrow band channels are considered and the received signal at the receiver k, for k=1, . . . , K, is denoted by

y _(k) =H _(k) x+z _(k)   (1)

where y_(k) is the N_(R)×1 vector of the signal received by the user k, x is the N_(T)×1 vector of the transmitted signal from the base station, z_(k)˜

(0, I) is the N_(R)×1 noise vector at the receiver k and H_(k) is a N_(R)×N_(T) channel matrix between the base station and the k^(th) user. A block fading channel is used, where the channel remains constant for a period of transmitting one codeword (one time block) and changes from one time block to the other.

Beamforming at the base station is considered, where the transmit signal is x=wx for a constant beamforming vector w over a codeword transmission period through a stream of symbols x such that E└xx*┘=1. The goals of various embodiments is to optimize the beamforming vector at the transmitter under different objectives, i.e., maximizing the minimum rate of all users under a short-term beamforming constraint or a long-term beamforming constraint and with the assumption of perfect channel state information or quantized channel state information. With short-term beamforming, the beamforming vector may possibly change for each transmission block while, with long-term beamforming, the beamforming vector remains constant over the transmission of multiple such blocks.

In the following, the problem of maximizing the minimum rate of the users under a constant transmit power constraint is considered. The problem can alternatively be posed as minimizing the transmit power while satisfying a minimum rate requirement for all users. The short-term (ST) multicast beamforming with instantaneous and perfect channel state information at the base station is first considered herein below. Then the problem of long-term multicast beamforming with perfect channel knowledge is considered and addressed. For practical systems, the perfect channel state information is usually not available. In practice, the channel state information at the base station is obtained either by using reciprocity between the downlink and uplink channels in TDD (time division multiplexing) systems or it is obtained through feedback from the receivers to the base station in either TDD or FDD (frequency division multiplexing) systems. Different feedback strategies such as analog feedback, quantized covariance matrix feedback, or quantized channel feedback would have different effects in the performance of downlink transmission schemes. The optimization problems for both short-term or long-term multicasting beamforming can be reformulated to account for channel imperfections, as described in more detail herein below. It turns out that the resulting optimization problem for imperfect channel state information can be solved using techniques similar to those used to solve the problems of short-term or long-term beamforming with perfect channel state information.

2. Short Term Multicast Beamforming

The rate of the k^(th) user can be written as

R _(k)=log det(I+H _(k) ww*H* _(k))   (2)

where H* denotes the hermitian of H. The short-term multicasting beamforming problem is formulated as

$\begin{matrix} {\max_{w}\mspace{14mu} {\min\limits_{k}\; {\log \mspace{11mu} {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}}}} & (3) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (4) \end{matrix}$

where P is the total power constraint. Without loss of generality, it can be assumed that P=1. Also, it is noted that the power constraint w*w≦P has to be satisfied with equality, since otherwise w_(opt) can be scaled up such that the power constraint is satisfied with equality and this increases the objective function and is therefore a contradiction. The problem can be alternatively presented as the maximization of the minimum received SNR of all users, i.e.

$\begin{matrix} {_{1}\text{:}\mspace{14mu} {\max_{w}\mspace{14mu} {\min\limits_{k}{w^{*}H_{k}^{*}H_{k}w}}}} & (5) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (6) \end{matrix}$

the solution to this optimization problem is equivalent (up to a scaling) to the solution to the following problem

$\begin{matrix} {_{2}\text{:}\mspace{14mu} {\min_{w}\mspace{14mu} {w^{*}w}}} & (7) \\ {{{s.t.\mspace{14mu} {\min\limits_{k}{w^{*}H_{k}^{*}H_{k}w}}} \geq \alpha},{\forall{1 \leq k \leq K}}} & (8) \end{matrix}$

Both formulations

₁ and

₂ of the ST (short term) multicast beamforming problem are quadratically constrained quadratic optimization programs (QCQP) which are nonconvex problems and their discrete versions are known to be NP-hard (non-deterministic polynomial-time hard).

2A. Suboptimal Greedy Solution

The lagrangian and the KKT conditions for P₂ are written as:

$\begin{matrix} {{L\left( {w,\underset{\_}{\lambda}} \right)} = {w^{*}w{\sum\limits_{k = 1}^{K}\; {\lambda_{k}\left( {\alpha - {w^{*}H_{k}^{*}H_{k}w}} \right)}}}} & (9) \\ {{\nabla_{w}{L\left( {w,\underset{\_}{\lambda}} \right)}} = {{{2w} - {2{\sum\limits_{k = 1}^{K}\; {\lambda_{k}H_{k}^{*}H_{k}w}}}} = 0}} & (10) \\ {{\lambda_{k} \geq 0},{\forall{1 \leq k \leq K}}} & (11) \\ {{\lambda_{k}\left( {\alpha - {w^{*}H_{k}^{*}H_{k}w}} \right)} = 0} & (12) \end{matrix}$

where λ=[λ₁, . . . , λ_(k), . . . , λ_(K). Based on the optimality conditions (10) and (12), two observations that serve the basis for the greedy beamforming approach can be made.

Observation 1: The multicasting beamformer w is within the column span of the matrix └H*₁, . . . , H*_(k), . . . , H*_(K)┘. The reason is that (10) can be written as w=Σ_(k=1) ^(K)λ_(k)H*_(k)H_(k)w=Σ_(k=1) ^(K)λ_(k)H*_(k)a_(k), where a_(k)=H_(k)w is a N_(R)×1 vector. Thus,

$\begin{matrix} {w = {{\sum\limits_{k = 1}^{K}\; {\lambda_{k}H_{k}^{*}a_{k}}} = {\sum\limits_{k = 1}^{K}\; {\sum\limits_{r = 1}^{N_{R}}\; {\lambda_{k}a_{r,k}h_{r,k}^{*}}}}}} & (13) \end{matrix}$

where a_(r,k) is the r^(th) element of the vector a_(k) and h*_(r,k) is the r^(th) column of the matrix H*_(k). This is clearly the linear combination of all columns of the matrices H*_(k), for 1≦k≦K.

Motivated by the above-described observation, a greedy approach is provided to solve problem

₂. Referring now to FIG. 3, with continuing reference to FIGS. 1 and 2, an exemplary embodiment 200 of a method for determining a beamforming vector or precoder in accordance with the approach is illustrated. An exemplary algorithm that also follows this approach is provided herein below in Table 1.

TABLE 1 Algorithm 1: Suboptimal greedy algorithm for short term multicast precoder design. Algorithm 1: Input. Channel matrices h_(k), 1≦ k ≦ K and α > 0. Output. A set of complex numbers β_(π,k), and w. 1 for every ordering π of {1, 2, . . . , k} 2  for every 1 ≦ k ≦ K,    $\left. h_{\pi,{\pi {(k)}}}\leftarrow{h_{\pi {(k)}} - {\sum\limits_{l = 1}^{k - 1}\; {\frac{h_{\pi {(k)}}h_{\pi,{\pi {(l)}}}^{*}}{{h_{\pi {(k)}}h_{\pi,{\pi {(l)}}}}}h_{\pi,{\pi {(l)}}}}}} \right.$ 3  β_(π,1) ← {square root over ((α))}∥h_(π,π(1))h_(π(1)) ^(*)∥⁻¹ 4  for every 2 ≦ j ≦ K   A ← |h_(π,π(j))h_(π(j)) ^(*)|²,   B ← (Σ_(k=1) ^(j−1)β_(π,k) ^(*)h_(π,π(k)))h_(π(j)) ^(*)h_(π(j))h_(π,π(j)) ^(*),   C ← |h_(π(j))Σ_(k=1) ^(j−1)h_(π,π(k)) ^(*)β_(π,k)|   if C ≧ α then β_(π,j) = 0 else     $\beta_{\pi,j} = {\frac{1}{A}\left( {{B} + \sqrt{{B}^{2} + {A\left( {\alpha - C} \right)}}} \right)e^{{- j}\; {\varphi {(B)}}}}$    where φ(B) is the phase of B.   end if  end for 5  w_(π) = Σ_(k=1) ^(K)β_(π,k)h_(k) ^(*) 6 end for 7 w = arg min_(w) _(π) ∥w_(π)∥ 8 {circumflex over (π)} = arg min_(π)∥w_(π)∥

The method 200 can begin at step 201, at which the controller 306 of the base station 110 can obtain indications of channel matrices H_(k) for each user k. For example, as indicated above, the channel state information can be obtained by the controller 306 either by using reciprocity between the downlink and uplink channels in TDD systems or can be obtained through feedback from each of the K receivers (e.g., receiver 114 and 116) to the base station in either TDD or FDD systems. As also stated above, such feedback can include analog feedback, quantized covariance matrix feedback, or quantized channel feedback.

Here, it is assumed that N_(R)=1 for simplicity of discussion and also to permit ease of understanding of the method 200 and Algorithm 1. In this case, h_(k) is explicitly written instead of H_(k). Thus, for each user k, h_(k) can be obtained by the base station at step 201 arid can be input into Algorithm 1, as provided above. Based on the above-discussed observation that the beamforming vector or precoder is a linear combination of all columns of the matrices H*_(k) for 1≦k≦K, the optimal multicasting beamforming vector should be in the following form

$\begin{matrix} {w = {\sum\limits_{k = 1}^{K}\; {\beta_{k}h_{k}^{*}}}} & (14) \end{matrix}$

Thus, at step 202, the controller 306 of the base station 110 can formulate the beamformer w as a linear combination of columns of the channel matrices of the users. The following parts of the method are based on a second observation.

Observation 2: Given a permutation of the users, the optimal solution can be represented as a function of the orthogonalized channels of each user with respect to the channels of users preceding it in the permutation. This can be inferred from (12)

Suppose that M out of K values of λ_(k) are non-zero and the rest are zero. Assume an ordering π(k) of users where λ_(π(k))≠0 for 1≦k≦M. For a given permutation π and for all k from 1 to K, let h*_(π,π(k)) denote the vector obtained by successively orthogonalizing h*_(π(k)) to all prior h*_(π(i)) for i=1, . . . . , k−1. (14) can be rewritten as

$\begin{matrix} {w = {\sum\limits_{k = 1}^{K}\; {\beta_{\pi,k}h_{\pi,{\pi {(k)}}}^{*}}}} & (15) \end{matrix}$

It is noted that by using the KKT condition and the assumption that λ_(π(k))≠0 for 1≦k≦M, the constraint α−w*h*_(π(k))h_(π(k))w≦0 has to be satisfied with equality for indices π(k), 1≦k≦M. By using (15) and orthogonal construction of h*_(π(k)) we have

$\begin{matrix} \begin{matrix} {\alpha = {\left( {\sum\limits_{k = 1}^{K}\; {\beta_{\pi,k}^{*}h_{\pi,{\pi {(k)}}}}} \right)h_{\pi {(j)}}^{*}{h_{\pi {(j)}}\left( {\sum\limits_{l = 1}^{K}\; {h_{\pi,{\pi {(l)}}}^{*}\beta_{\pi,l}}} \right)}}} & {\mspace{200mu} (16)} \\ {= {\left( {\sum\limits_{k = 1}^{j}\; {\beta_{\pi,k}^{*}h_{\pi,{\pi {(k)}}}}} \right)h_{\pi {(j)}}^{*}{h_{\pi {(j)}}\left( {\sum\limits_{l = 1}^{j}\; {h_{\pi,{\pi {(l)}}}^{*}\beta_{\pi,l}}} \right)}}} & (17) \end{matrix} & \; \end{matrix}$

for j=1, . . . , M. The expression (17) has the following interpretation that can be used to successively build the solution as will be shown below. Consider j=1, then

α=β*_(π,1) h _(π,π(1)) h* _(π(1)) h _(π(1)) h* _(π,π(1))β_(π,1)   (18)

in which β_(π,1) can be found to satisfy this condition. Next, for j=2,

$\begin{matrix} {\alpha = {{\beta_{\pi,1}^{*}h_{\pi,{\pi {(1)}}}h_{\pi {(2)}}^{*}h_{\pi {(2)}}h_{\pi,{\pi {(1)}}}^{*}\beta_{\pi,1}} + {\beta_{\pi,2}^{*}h_{\pi,{\pi {(2)}}}h_{\pi {(2)}}^{*}h_{\pi {(2)}}h_{\pi,{\pi {(2)}}}^{*}\beta_{\pi,2}} + {2\; {e}\left\{ {\beta_{\pi,1}^{*}h_{\pi,{\pi {(1)}}}h_{\pi {(2)}}^{*}h_{\pi {(2)}}h_{\pi,{\pi {(2)}}}^{*}\beta_{\pi,2}} \right\}}}} & (19) \end{matrix}$

in which β_(π,2) can be found to satisfy this condition given that β_(π,1) from the previous step is used. It is noted that the successive orthogonality of h_(π,π(k)) with respect to k ensures that the conditions that are met previously still remain intact as we find the values for the next β_(π,k).

Thus, to find the beamformer w, at step 202 of the method 200, the controller 306 of the base station can formulate the beamformer matrix w as

$w = {\sum\limits_{k = 1}^{K}\; {\beta_{\pi,k}{h_{\pi,{\pi {(k)}}}^{*}.}}}$

The method can proceed to step 204, at which the controller 306 selects a given permutation of an ordering of users π(k), as indicated above and as provided in line 1 of Algorithm 1. The function π(k) for k=1, 2, . . . M outputs the index of the first user, second user, . . . , k^(th) user after some ordering. For example, in one permutation π user 114 in FIG. 1 is assigned to be the first user and user 116 is assigned to be the second user, while in different permutation π user 114 in FIG. 1 is assigned to be the second user and user 116 is assigned to be the first user.

At step 206, the controller 306 of the base station 110 selects the next consecutive user k in the permutation selected at step 204 in the same iteration of the method 200. For example, in the first iteration of step 206 for a given permutation π, the base station selects k=1. In the next iteration, the base station selects k=2 in the given permutation, etc.

At step 208, the controller 306 of the base station 110 successively orthogonalizes h*_(π(k)) to all prior h*_(π(i)) for i=1, . . . , k−1 in the permutation with to the value of k selected at step 206 in the same iteration of the method 200 to determine h*_(π,π(k)). For example, as provided in line 2 of Algorithm 1, h_(π,π(k)) is determined by calculating

$h_{\pi {(k)}} - {\sum\limits_{l = 1}^{k - 1}\; {\frac{h_{\pi {(k)}}h_{\pi,{\pi {(l)}}}^{*}}{{h_{\pi {(k)}}h_{\pi,{\pi {(l)}}}}}{h_{\pi,{\pi {(l)}}}.}}}$

Further, h*_(π,π(k)) is determined by taking the Hermitian of the result. At step 210, the controller 306 can determine whether k=K. If not, then steps 206 and 208 can be repeated. If so, then the method can proceed to step 212. It should be noted that although the method successively orthogonalizes the channel matrices, variations to the method can be made. For example, as opposed to orthogonalizing the channel matrices from k=1 to k=K, the orthogonalizing can be conducted in preceding order, from k=K to k=1. Similar modifications to the methods described herein can be made in other various steps and are within the scope of the present principles.

At step 213, the controller 306 of the base station 110 can determine β_(β,1). For example, as provided in line 3 of Algorithm 1, the controller 306 can determine β_(β,1) by calculating √{square root over ((α))}∥h_(π,π(1))h*_(π(1))∥⁻¹.

At step 214, the controller 306 can select the next consecutive j for β_(π,j). In addition, the controller 306 can determine β_(π,j) for this selected j at step 216. For example, as provided in line 4 in Algorithm 1, for a given β_(π,j), the controller 306 can determine A, B and C, where A is |h_(π,π(j))h*_(π(j))|², B is (Σ_(k=1) ^(j−1)β*_(π,k)h_(π,π(k)))h*_(π(j))h_(π(j)) and C is |_(π(j))Σ_(k=1) ^(j−1)h*_(π,π(k))β_(π,k)|. Further, if C≧α, then the controller 306 determines β_(π,j) to be zero. Otherwise, the controller 306 determines β_(π,j) by calculating

${\beta_{\pi,j} = {\frac{1}{A}\left( {{B} + \sqrt{{B}^{2} + {A\left( {\alpha - C} \right)}}} \right)^{- {{j\phi}{(B)}}}}},$

where φ(B) is the phase of B. Here, β_(π,j) can be iteratively determined for each value of j, where 2≦j≦K. Thus, the method can proceed to step 218, at which the controller 306 determines whether β_(π,K) has been determined. If not, then the method can proceed to step 214 at which the controller 306 selects the next consecutive j and β_(π,j) for this selected j is determined at step 216. Otherwise, the method can proceed to step 220. It should be noted that the value for β_(π,k) that satisfies condition (17) might not be unique and it should be chosen to minimize the noun of the multicasting beamformer w at the final step. With the aim of minimizing the norm of w, at each performance of step 216, and also step 212, the controller 306 can find and select the value of β_(π,k) that minimizes the partial norm of w, which in turn is defined as

$\begin{matrix} {{w}_{1\rightarrow k}^{2} = {{\sum\limits_{j = 1}^{k}\mspace{2mu} {\beta_{\pi,j}h_{\pi,{\pi {(j)}}}^{*}}}}_{2}^{2}} & (20) \end{matrix}$

At step 220, the controller 306 can determine the beamformer w_(π) for the permutation of π(k) selected at step 204 in the current iteration of the method 200 by calculating

$w_{k} = {\sum\limits_{k = 1}^{K}\; {\beta_{\pi,k}{h_{\pi,{\pi {(k)}}}^{*}.}}}$

At step 222, the controller 306 can determine whether all possible permutations of π(k) have been evaluated. If not, then the method can proceed to step 204 and a permutation of π(k) that has not been evaluated can be selected and steps 206-222 can be repeated. If all possible permutations of π(k) have been evaluated, then the method can proceed to step 224, at which the controller 306 can select and apply the most optimal beamformer w. For example, after obtaining a beamformer w for each possible permutation of π(k), the controller 306 can determine which beamformer or precoder w results in a minimum w*w such that

${{\min\limits_{k}{w^{*}H_{k}^{*}H_{k}w}} \geq \alpha},$

as described above with regard to problem

₂. Alternatively, after obtaining a beamformer w for each possible permutation of π(k), the base station can determine which beamformer or precoder w results in a maximum value of the minimum received SNR w*H*_(k)H_(k)w under the power constraint w*w≦P as described above with regard to problem

₁. In accordance with another example, the final beamforming vector is obtained as the beamforming vector that has the minimum norm over all permutations and the corresponding permutation {circumflex over (π)} is obtained similarly as the permutation for which the beamforming vector has the minimum norm, as illustrated in lines 7-8 of Algorithm 1. Further, the controller 306 can apply the most optimal beamformer w to the multicast data stream symbols x to generate a transmit signal x=wx for receipt by receivers 114 and 116.

At step 226, the controller 306 can direct the transmitter 309 to transmit the resulting transmit signal to the receivers 114 and 116. Thereafter, the method can be repeated for newly obtained channel matrices H_(k) for each user k.

The greedy approach described above attempts to minimize the norm at each step although the optimal solution might not necessarily abide this structure. For any given permutation function π(k), if this greedy approach is applied for all values of k for k=1, . . . , K, the base station 110 can always find a vector w such that all the constraints α−w*h*_(π(k))h_(π(k))w≦0 are at least satisfied with equality. One might notice that in some cases if at step j, the condition

$\begin{matrix} {{\left( {\sum\limits_{k = 1}^{j - 1}{\beta_{\pi,k}^{*}h_{\pi,{\pi {(k)}}}}} \right)h_{\pi {(j)}}^{*}{h_{\pi {(j)}}\left( {\sum\limits_{l = 1}^{j - 1}{h_{\pi,{\pi {(l)}}}^{*}\beta_{\pi,l}}} \right)}} \geq \alpha} & (21) \end{matrix}$

is satisfied, then the j^(th) constraint

$\begin{matrix} {{\left( {\sum\limits_{k = 1}^{j}{\beta_{\pi,k}^{*}h_{\pi,{\pi {(k)}}}}} \right)h_{\pi {(j)}}^{*}{h_{\pi {(j)}}\left( {\sum\limits_{l = 1}^{j}{h_{\pi,{\pi {(l)}}}^{*}\beta_{\pi,l}}} \right)}} \geq \alpha} & (22) \end{matrix}$

automatically holds, even β_(π,k)=0. This property permits the successive evaluation of j up to K, as provided in Algorithm 1 and in the method 200. In order to find the best solution, this greedy procedure is repeated for all possible permutations π. However, it is noted that up to step M, all derivations are identical for two permutations π₁ and π₂ that have the same prefix, i.e., π₁(k)=π₂(k), 1≦k≦M for some M.

For small to moderate number of users K, an exhaustive search of all possible permutations usually leads to a solution very close to the optimal solution. The distance to the optimal solution is measured by the duality gap, as discussed in the next section. However, for large numbers of users where exhaustive search is not tractable, one can consider a smaller number of permutations that are randomly generated for which performing the proposed greedy method is computationally tractable.

2B. Optimal Solution for the Real Channels

In some cases it is possible to find the optimal solution to the problem

₂. Consider the case where it is possible to find a multicasting beamforming vector that satisfies all the constraints with equality. By using the linear expansion of the w in the form (14) we have

$\begin{matrix} {{{w^{*}h_{j}^{*}h_{j}w} = \alpha},{\forall j},{1 \leq j \leq K}} & (23) \\ {{\sum\limits_{k = 1}^{K}{\beta_{k}h_{k}h_{j}^{*}{h_{j}\left( {\sum\limits_{k = 1}^{K}{\beta_{k}h_{k}}} \right)}}} = \alpha} & (24) \\ {{{\sum\limits_{k = 1}^{K}{\beta_{k}h_{k}h_{j}^{*}}}}^{2} = \alpha} & (25) \\ {{\sum\limits_{k = 1}^{K}{\beta_{k}h_{k}h_{j}^{*}}} = {\sqrt{\alpha}^{\; \theta_{j}}}} & (26) \end{matrix}$

for some phases θ_(j), 1≦j≦K where i=√{square root over (−1)}. The final result shows that for a given set of phases θ_(j), 1≦j≦K, the set of equations in (26) is linear with respect to the column vector β=[β₁, . . . , β_(K)]^(T) and can be easily solved. We have

$\begin{matrix} {{F\underset{\_}{\beta}} = {{\sqrt{\alpha}\begin{bmatrix} ^{{\theta}_{1}} \\ ^{{\theta}_{2}} \\ \vdots \\ ^{{\theta}_{K}} \end{bmatrix}}\mspace{14mu} {where}}} & (27) \\ {F = \begin{bmatrix} {h_{1}h_{1}^{*}} & {h_{1}h_{2}^{*}} & \ldots & {h_{1}h_{K}^{*}} \\ {h_{2}h_{1}^{*}} & {h_{2}h_{2}^{*}} & \ldots & {h_{2}h_{K}^{*}} \\ \vdots & \; & \; & \vdots \\ {h_{K}h_{1}^{*}} & {h_{K}h_{2}^{*}} & \ldots & {h_{K}h_{K}^{*}} \end{bmatrix}} & (28) \end{matrix}$

If the channel is real, then the only possible phases would be 0 and π and we have

Fβ=√{square root over (α)}1_(τ)  (29)

where 1_(τ) is one of 2^(K) possible K×1 vectors in the form [±1±1 . . . ±1]^(T), and τ indicates the sign pattern. Using the definition of F we can write (14) as w=F*β. The norm of w can then be written as

∥w∥ ² =w*w=β*FF*β  (30)

and for a given sign pattern τ, the minimum norm of w is obtained by

∥w∥ _(min,τ) ²=α1_(τ) F ⁺ *FF*F ⁺1_(τ)  (31)

where F⁺ is the pseudo-inverse of F. It is noted that, here, we are only considering the case that the set of linear equations (29) are not overdetermined and hence the pseudoinverse F⁺ exists. To obtain the optimal solution all 2^(K) sign patterns τ should be considered and the following should be determined

$\begin{matrix} {{w}_{\min}^{2} = {\min\limits_{\tau}{{w}_{\min,\tau}^{2}.}}} & (32) \end{matrix}$

Finding the optimal solution for real channels is still NP-hard with respect to the number of users as expected. However, in most practical scenarios, a base station serves small or moderate numbers of users. Thus, finding the optimal solution should be computationally feasible. With complex channels, even for a fixed number of users, the non-convexity of the problem makes it computationally challenging to find the optimal or close to optimal solution.

If the channel is not real, then the phase values θ_(j), 1≦j≦K are not within a finite set, and hence the approach of solving a set of linear equations cannot be used. In fact, from the procedure in Algorithm 1 it can be interpreted that the values of θ_(j)'s are found successively by a greedy solution where at each step the procedure attempts to minimize the partial norm of the beamforming vector as defined in (20).

2C. Dual Problem and Bound

The bound on the performance of the beamforming method can be derived by using the dual problem. In order to find the dual problem, the optimization problem P₁ can be re-written as follows

₃:

min_(w)−α  (33)

s.t. α−w*H* _(k) H _(k) w≦0, ∀k, 1≦k≦K   (34)

w*w≦1   (35)

The lagrangian can be written as

$\begin{matrix} {{L_{}\left( {\alpha,w,\underset{\_}{\lambda}} \right)} = {{- \alpha} + {\sum\limits_{k = 1}^{K}{\lambda_{k}\left( {\alpha - {H_{k}^{*}H_{k}w}} \right)}}}} & (36) \end{matrix}$

where λ=[λ₁, λ₂, . . . , λ_(K)] and the lagrangian is written in the region

={w:w*w≦1}. Thus,

$\begin{matrix} \begin{matrix} {{g\left( \underset{\_}{\lambda} \right)} = {\inf\limits_{D,{\alpha \geq 0}}{L_{}\left( {\alpha,w,\underset{\_}{\lambda}} \right)}}} \\ {= \left\{ {\begin{matrix} {- \infty} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} < 1} \\ {\inf_{} - {{w^{*}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}w}} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1} \end{matrix}\begin{matrix} (38) \\ \; \end{matrix}} \right.} \\ {= \left\{ {\begin{matrix} {- \infty} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} < 1} \\ {- {\sigma_{\max}^{2}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1} \end{matrix}\begin{matrix} (39) \\ \; \end{matrix}} \right.} \end{matrix} & (37) \end{matrix}$

The optimal point of the dual problem gives a lower bound to the primal problem in this case. As such, a lower bound to the objective function −α is given by

$\begin{matrix} \begin{matrix} {{\sup\limits_{\underset{\_}{\lambda}}{g\left( \underset{\_}{\lambda} \right)}} = {\sup\limits_{{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1} - {\sigma_{\max}^{2}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}}} \\ {= {\inf\limits_{{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1}{\sigma_{\max}^{2}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}\begin{matrix} (41) \\ \; \end{matrix}}} \end{matrix} & (40) \end{matrix}$

where σ_(max) ²(A) denotes the largest singular value of the matrix A. It follows that

$\begin{matrix} {\alpha_{\max} \leq {\inf\limits_{{\sum_{k = 1}^{K}\lambda_{k}} \geq 1}{\sigma_{\max}^{2}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}}} & (42) \end{matrix}$

The problem of minimizing the largest eigenvalue of a linear combination of matrices can be efficiently solved by writing it as a Semi-Definite Programming (SDP) as follows

$\begin{matrix} {_{4}\text{:}\mspace{14mu} {\min_{\underset{\_}{\lambda}}\alpha}} & (43) \\ {{s.t.\mspace{14mu} \left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right)}{\alpha \; I}} & (44) \\ {{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1} & (45) \end{matrix}$

where B

A is a linear matrix inequality (LMI) indicating that A−B is a non-negative definite matrix. The lower bound obtained with the help of the dual formulation can be employed to evaluate the efficiency of the beamforming method.

3. Long-Term Multicast Beamforming

For the long-term multicast beamforming case, it is assumed that the user, for example, receivers 114 and 116, acquires the channel state information over a longer period of time and is also able to encode over multiple fading blocks with the same statistics. In this case, the instantaneous channel knowledge is not required and access to the channel statistic for the past several blocks is generally sufficient, depending on the coherence time of the channel. Since the coding is done over multiple blocks, the rate of the k^(th) user can be written as

R _(k)=

└ log det(I+H _(k) ww*H* _(k))┘  (46)

where the expectation is taken over

_(k), the set of expected channels for the user k. The long-term multicast beamforming problem is formulated as

$\begin{matrix} {_{5}\text{:}\mspace{14mu} {\max_{w}\mspace{14mu} {\min\limits_{k}{E_{\mathcal{H}_{k}}\left\lfloor {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rfloor}}}} & (47) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (48) \end{matrix}$

where P is the total power constraint. Unlike the short-term beamforming problem, this problem cannot be written in the form of a quadratic programming because of the expectation operation. Also, it is noted that the above-formulation of the problem is different from the problem of maximizing the minimum of the average SNR among all users.

3A. Suboptimal Gradient Ascent Solution

One advantage of the algorithm in Table 1 that solves the short-term multicast beamforming problem is that there is no need for an iterative approach in which solutions are based on successive estimations of a value, as in prior works. Such iterative approaches often require fine adjustments to the solution parameters to obtain a fast convergence rate and to avoid divergence. However, the algorithm in Table 1, above, exploits the fact that the matrix H*_(k)H_(k) for all users is unit rank. This algorithm is not directly applicable to either of the formulations of the long-term beamforming problem which use the average rate or average SNR as the objective function.

The optimization problem (47) is non-convex. Here, we seek a solution based on the gradient ascent algorithm. The convergence rate and the final result of the gradient ascent algorithm highly depends on the starting point and its step size. One can uniformly choose multiple starting points in order to find a better result.

The gradient of the objective function

$\begin{matrix} {J = {\min\limits_{k}{E_{\mathcal{H}_{k}}\left\lfloor {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rfloor}}} & (49) \end{matrix}$

versus the beamforming vector w is given by

$\begin{matrix} {{{\nabla_{w}J} = {2\; {E_{\mathcal{H}_{j{(w)}}}\left\lbrack {\left( {1 + {w^{*}H_{j{(w)}}^{*}H_{j{(w)}}w}} \right)^{- 1}H_{j{(w)}}w} \right\rbrack}}}{where}} & (50) \\ {{j(w)} = {\arg \; {\min\limits_{k}{E_{\mathcal{H}_{k}}\left\lfloor {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rfloor}}}} & (51) \end{matrix}$

Please note that the above-derivation of the derivative assumes that the objective function J is well behaved with respect to j(w), i.e., for any w there exists a neighborhood around w such that j(w+δ(w))=j(w) for ∥δ(w)∥<δ for some small positive real number δ.

The gradient ascent algorithm is then written as

$\begin{matrix} \begin{matrix} {{w\left( {t + 1} \right)} = {{w(t)} + {\mu {\nabla_{w{(t)}}J}}}} \\ {= {\left( {I + {2\; \mu \; {E_{\mathcal{H}_{j{(w)}}}\left\lbrack \frac{H_{j{(w)}}}{1 + \left( {w^{*}H_{j{(w)}}^{*}H_{j{(w)}}w} \right)} \right\rbrack}}} \right){w(t)}}} \end{matrix} & (52) \\ {{w\left( {t + 1} \right)} = {{w\left( {t + 1} \right)}/{{w\left( {t + 1} \right)}}_{2}}} & (53) \end{matrix}$

where w(t+1) is the updated beamforming vector at time t+1, w(t) is the existing beamforming vector at time t, ∇_(w(t))J is the gradient of the objective function calculated at time t and μ is the step size of the algorithm.

The optimization algorithm is summarized in Algorithm 2 below in Table 2.

TABLE 2 Gradient ascent-based algorithm for optimal long-term multicast precoder design Algorithm 2: Input. Channel matrices H_(k), 1 ≦ k ≦ K, and μ, ε > 0 Output. Precoding vector w of unity norm. 1 repeat j ← arg   min_(k) E_(H_(k))⌊log   det (I + H_(k)ww^(*)H_(k)^(*))⌋ Δ w ← 2E_(H_(j))[(1 + w^(*)H_(j)^(*)H_(j)w)⁻¹H_(j)w] w ← w + μΔ w $\left. w\leftarrow\frac{w}{{w}_{2}} \right.$  until ∥μΔw∥₂ < ε

With reference now to FIG. 4, with continuing reference to FIGS. 1-3, a method 400 for determining a beamforming vector or precoder in accordance with a long-term multicast beamforming scheme is illustrated. Algorithm 2 of Table 2 is an exemplary implementation of the method 400. The method 400 can begin at step 402, at which the controller 306 of the base station 110 can obtain a set of channel matrices H_(k) for each user k it expects to service. For example, as noted above with respect to step 201 of the method 200, the controller 306 can obtain the channel state information by using reciprocity between the downlink and uplink channels or can be obtained from feedback received from each of the K receivers at the base station, such as analog feedback, quantized covariance matrix feedback or quantized channel feedback. However, here, as indicated above, the controller 306 presumes that the channel state information obtained is valid for several time blocks, depending on the coherence time of the channel.

At step 404, the controller 306 can select a step size μ and an initial beamformer matrix w. Here, the initial beamformer matrix can be the beamformer matrix applied in a preceding time block. For example, as indicated above, to determine a beamforming matrix w(t+1), w(t) can be employed as the initial beamformer matrix in a gradient ascent procedure. In addition, as also indicated above, a plurality of different initial beamformer matrices can be selected to find a better result. The plurality of initial beamformer matrices can be obtained by varying the beamformer matrix applied in a preceding time block or by randomly selecting beamformer matrices. Thus, the controller 306 can perform the method 400 for different initial beamformer matrices simultaneously until convergence for at least one of the starting points is reached and picks the beamformer which results in the maximum of the objective function in (49).

At step 406, the controller 306 can determine which receiver has a lowest reception rate among reception rates of each of a plurality of receivers that the base station 110 services for the initial beamformer matrix. For example, in accordance with the objective function (49), the controller 306 can determine the receiver j with the lowest reception rate by calculating arg min_(k)

Ølog det(I+H_(k) ww*H*_(k))┘, as indicated in Algorithm 2. As stated above, the expectation is taken over

_(k), the set of expected channels for the user k for multiple time blocks.

At step 408, the controller 306 can find the gradient of the objective function with respect to the initial beamformer matrix for the user with the minimum rate. For example, as indicated in Algorithm 2, the controller 306 can determine the gradient of the objective function (49) by calculating 2

[(1+w*H*_(j)H_(j)w)⁻¹H_(j)w]. For consistency purposes, this gradient is denoted here as Δw.

At step 410, the controller 306 can increment the initial beamformer matrix w based on the gradient Δw and the selected step size μ. For example, as indicated in Algorithm 2 in Table 2, the beamforming matrix w can be incremented by μΔw.

At step 412, the controller 306 can scale the beamformer matrix to have a unity norm. For example, as provided in Algorithm 2 in Table 2 above, the beamformer matrix can be scaled by

$\frac{1}{{w}_{2}}.$

At step 414, the controller 306 can determine whether the increment falls below a threshold. For example, as indicated in Algorithm 2 of Table 2, the controller 306 can determine whether the norm of the increment, ∥μΔw∥₂, falls below a threshold ε. If not, then the method can proceed to step 406, where the controller determines the user or the receiver that has the minimum rate with the resulting beamformer matrix obtained at step 412. Thereafter, the method proceeds to step 408 with this resulting beamformer matrix as the “initial” beamformer matrix described above. If the increment (or its norm) falls below the threshold, then convergence has been reached and the method can proceed to step 416, at which the controller 306 applies the resulting beamformer matrix obtained at the most recent iteration of step 412 to data symbols for transmission to the receivers. For example, the controller 306 can apply the resulting beamformer w to the multicast data stream symbols x to generate a transmit signal x=wx for receipt by receivers 114 and 116.

At step 418, the controller 306 can direct the transmitter 309 to transmit the resulting transmit signal to the receivers 114 and 116. Thereafter, the method can be repeated for newly obtained channel matrices H_(k) for each user k.

3B. Dual Problem and Bound

In order to find the dual for the long-term beamforming problem, the optimization problem

₅ can be rewritten as follows

min_(w)−α  (54)

s.t. α−

└ log det(I+H _(k) ww*H* _(k))┘≦0, ∀k, 1≦k≦K   (55)

w*w≦1   (56)

The lagrangian can be written as

$\begin{matrix} {{L_{}\left( {\alpha,w,\underset{\_}{\lambda}} \right)} = {{- \alpha} + {\sum\limits_{k = 1}^{K}{\lambda_{k}\left( {\alpha - {E_{\mathcal{H}_{k}}\left\lbrack {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rbrack}} \right)}}}} & (57) \end{matrix}$

where λ=[λ₁, λ₂, . . . , λ_(K)] and the lagrangian is written in the region D={w:w*w≦1}. We have

$\begin{matrix} {{g\left( \underset{\_}{\lambda} \right)} = {\inf\limits_{D,{\alpha \geq 0}}{L_{}\left( {\alpha,w,\underset{\_}{\lambda}} \right)}\begin{matrix} (58) & \; \end{matrix}}} \\ {= \left\{ {\begin{matrix} {{- \infty},} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} < 1} \\ {\inf_{} - \left( {\sum\limits_{k = 1}^{K}{\lambda_{k}{E_{\mathcal{H}_{k}}\left\lbrack {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rbrack}}} \right)} & {{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq 1} \end{matrix}\; \begin{matrix} (59) \\ \; \\ \; \end{matrix}} \right.} \end{matrix}$

Unfortunately, g(λ) cannot be found, as the computation involves solving a non-convex optimization problem. However, it is noted that the optimal point of the dual problem gives a lower bound to our primal problem and it takes the following form

$\begin{matrix} {\alpha_{\max} \leq {\inf\limits_{{\underset{\_}{\lambda}\text{:}{\sum_{k = 1}^{K}\lambda_{k}}} \geq 1}\sup\limits_{}{\sum\limits_{k = 1}^{K}{\lambda_{k}{E_{\mathcal{H}_{k}}\left\lbrack {\log \; {\det \left( {I + {H_{k}{ww}^{*}H_{k}^{*}}} \right)}} \right\rbrack}}}}} & (60) \end{matrix}$

Because the infimum of the supremum is considered, it is possible to replace the objective function

└ log det(I+H_(k)ww*H*_(k))┘ with its upper bound, e.g., based on the Jensen's inequality, and find an alternative upper bound as

$\begin{matrix} {\alpha_{\max} \leq {\inf\limits_{{\underset{\_}{\lambda}\text{:}{\sum_{k = 1}^{K}\lambda_{k}}} \geq 1}{\sup\limits_{}\left\lbrack {\log \; {\det \left( {I + {{w^{*}\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}E_{\mathcal{H}_{k}}H_{k}^{*}H_{k}}} \right)}w}} \right)}} \right\rbrack}}} & (61) \end{matrix}$

Another alternative is to use the relaxation of the inner optimization problem in (62) and find the alternative upper bound as

$\begin{matrix} {\alpha_{\max} \leq {\inf\limits_{{\underset{\_}{\lambda}\text{:}{\sum_{k = 1}^{K}\lambda_{k}}} \geq 1}\sup\limits_{}{\sum\limits_{k = 1}^{K}{\lambda_{k}{E_{\mathcal{H}_{k}}\left\lbrack {\log \; {\det \left( {I + {H_{k}{\sum H_{k}^{*}}}} \right)}} \right\rbrack}}}}} & (62) \end{matrix}$

where Σ is the transmit covariance matrix but we relax the condition that it has to be rank 1. The inner optimization problem is now convex and can be solved. By definition of the duality, the outer optimization problem is also convex and can be solved. However, the combination of these two optimization problems for which the closed form expression is not available makes the calculation of this bound computationally challenging. Nonetheless, if the dimension of the matrix H_(k) is not too large, this latter bound would usually provide a tighter bound than the former bound derived based on the Jensen's inequality.

4. Imperfect Channel State Information

In practice, the channel state information at the base station is obtained either by using the reciprocity between the downlink and uplink channels in TDD systems or it is obtained by feedback from the receivers to, the base station. Different feedback strategies such as analog feedback, quantized covariance matrix feedback or quantized channel feedback would have different effects in the performance of the downlink transmission schemes. If a quantized covariance feedback is used, the optimization problem

₁ or

₂ for the short-term beamforming will be used where H*_(k)H_(k) is replaced with Θ_(k)=H*_(k)Σ_(k) ⁻¹H_(k). Here, Σ_(k) is the covariance of the noise at the receiver which can account for the possible noise correlation at the receiver. For example, the short-term beamforming problem P₁ is modified as

$\begin{matrix} {\max_{w}\mspace{14mu} {\min\limits_{k}{w^{*}\Theta_{k}w}}} & (63) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (64) \end{matrix}$

and the long-term beamforming problem P₅ is written as

$\begin{matrix} {\max_{w}{\min\limits_{k}{E_{\mathcal{H}_{k}}\left\lfloor {\log \left( {1 + {w^{*}\Theta_{k}w}} \right)} \right\rfloor}}} & (65) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (66) \end{matrix}$

The same modifications to the other formulations employed in methods 200 and 400 can be made to enable the consideration of the covariances of noise for the receivers in the determination of an appropriate beamformer or precoder matrix in the methods.

In some cases the covariance matrix is estimated over a longer period of time and is reported less frequently. A long-term expectation of the covariance matrix represents the average statistic of the channel. In such scenarios, an alternative optimization problem

$\begin{matrix} {\max_{w}{\min\limits_{k}{w^{*}{\overset{\_}{\Theta}}_{k}w}}} & (67) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (68) \end{matrix}$

can be solved where Θ _(k)=

└H*_(k)Σ_(k) ⁻¹H_(k)┘ is calculated on a long-term basis. It can be shown that the solution to this optimization problem gives only a lower bound to the original long-term optimization problem (65).

In most practical scenarios, the feedback of either the actual channel matrix H_(k) or its covariance matrix Θ_(k) is not feasible due to the rate constraint in the feedback link. Therefore, a quantized version of the channel state, e.g., based on a codebook, is fed back to the base station. In such a scenario, the uncertainty in the feedback should be accounted for and the optimization problem should be modified accordingly. Let C={C₁, . . . , C_(M)} denote the codebook of size M for quantizing the channel matrix H_(k). Here, it is assumed that the codebook not only quantizes the channel direction but also the gain of the channel. In practice, the codebook is usually used to quantize the channel direction for the normalized channel matrix and the gain of the channel is fed back as a quanized real number, namely CQI (channel quality index) which also accounts for the actual modulation and coding used. By using the codebook C, the receivers 114, 116 quantize the channel H_(k) to C_(m) and feedback the index m to the base station 110 if

d(H _(k) , C _(m))≦d(H _(k) , C _(j))∀j, 1≦j≦M   (69)

for some distance metric d(.,.), e.g., d(a,b)=∥a*b∥². Accordingly, the receiver feeds back the codebook index corresponding to the matrix in the codebook that is closest to H_(k) and is within a distance d from that matrix. Here, at most only log₂(M) bits are used to feedback the channel matrix H_(k) to the base station 110. The base station 110, in turn, receives the codebook indexes from each of the receivers 114, 116 it services, and solves an optimization problem that is reformulated to account for the uncertainty in the actual value of H_(k). The corresponding optimization problem for the short-term beamforming would be posed as

$\begin{matrix} {\max_{w}{\min\limits_{k}{\min\limits_{H_{k} \in \; _{k}}{w^{*}H_{k}^{*}H_{k}w}}}} & (70) \\ {{{{s.t.\mspace{14mu} w^{*}}w} \leq P}{where}} & (71) \\ {_{k} = \left\{ {{H:{{d\left( {H,C_{m}} \right)} < {{d\left( {H,C_{j}} \right)}{\forall m}}}},{1 \leq j \leq M},{j \neq m}} \right\}} & (72) \end{matrix}$

Thus, the controller 306 of the base station 110 considers all of the matrices H that are closer to C_(m), in terms of the distance d(.,.), than to any other matrix C_(m) in the codebook C, i.e., the matrices in the set

_(k), to solve the optimization problem (70), (71). The long-term beamforming problem would be similarly solved by the controller 306 of the base station 110. Here, the long-term beamforming problem would also be posed as

$\begin{matrix} {\max_{w}{\min\limits_{k}{E_{\mathcal{H}_{k}}{E_{_{k}}\left\lbrack {\log \left( {1 + {w^{*}H_{k}^{*}H_{k}w}} \right)} \right\rbrack}}}} & (73) \\ {{{s.t.\mspace{14mu} w^{*}}w} \leq P} & (74) \end{matrix}$

Taking the double expectation on H_(k) over regions

_(k) and

_(k) is under assumption that the quantization error is independent of the channel variation.

It is also noted that the optimization problem posed in this section is very similar to one of the original optimization problems for short-term and long-term beamforming with the difference being the minimization or expectation is taken over a different set. Therefore, the discussions in the previous sections on the algorithms and methods to solve these problems or the bounds would directly apply here. Specifically, the short term and long term optimization problems described above can be substituted with (70)-(72) and (73)-(74), respectively, and the controller 306 of the base station 110 can essentially perform the methods described above using (70)-(72) or (73)-(74) as the optimization problems.

5. Optimal Solution for Hidden Convexity in Short Term Multicast Beamforming Problem

As indicated above, the determination of the beamformer matrix can be made in a substantially more efficient manner if certain particular conditions are met due to a hidden convexity in the short term multicast optimization problem. The approach taken here is to show that under certain conditions on the channel matrices the duality gap is in fact zero. The result of the section discussing the dual problem and bound for the short term multicast beamforming problem is used in determining the bound on σ_(max). As described in more detail herein below, the following theorem has been found to be valid:

Theorem 1: If the solution to the optimization problem

₄ is such that the maximum eigenvalue (denoted by α_(opt)) and eigenvector (denoted by w_(opt)) of the matrix

$\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}$

has a multiplicity of one, then w_(opt) and α_(opt) satisfies the primal problem posed in

₃. More precisely, G=w*_(opt)H_(k)H_(k)w_(opt)≧α_(opt) for all k=1, . . . , K, and α_(opt) is the optimal value of the objective function in

₃.

In order to prove Theorem 1, a more general result stated in the following theorem is proven.

Theorem 2: Let X be a compact metric space and

(X) be the space of probability measures on X. Let f₁, f₂, . . . , f_(K) be non-negative and non-zero continuous functions on X. Then the following statements (A)-(D) hold:

(A) Duality:

$\begin{matrix} {{\max \left\{ {\left. {\sum\limits_{k = 1}^{K}\lambda_{k}} \middle| {\forall{k:{\lambda_{k} \geq 0}}} \right.,{\forall{x \in {X:{{\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}(x)}}} \leq 1}}}}} \right\}} = \frac{1}{\max_{\mu}{\min_{k}{\int{f_{k}{\mu}}}}}} & (75) \end{matrix}$

(B) Existence of maximizer:

$\begin{matrix} {{\exists{\mu_{0} \in {{(X)}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} {\max\limits_{\mu}{\min\limits_{k}{\int{f_{k}{\mu}}}}}}}} = {\min\limits_{k}{\int{f_{k}{\; \mu_{0}}}}}} & (76) \end{matrix}$

(C) The boundary condition: Assume that λ₁, . . . , λ_(K) give us the maximum in the left hand side of Equation (75). Then for μ₀ at almost every point we have

$\begin{matrix} {{\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}(x)}}} = 1.} & (77) \end{matrix}$

(D) Uniqueness condition: If furthermore it is assumed that

$\begin{matrix} {{\exists{!{x_{0} \in {X\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} {\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}\left( x_{0} \right)}}}}}}} = 1} & (78) \end{matrix}$

then

-   -   (D1) μ₀ is δ_(X) ₀ , the Dirac measure supported at the point         x₀;     -   (D2)

${{\sum\limits_{k = 1}^{K}\lambda_{k}} = \frac{1}{\min_{k}{f_{k}\left( x_{0} \right)}}};$

and

-   -   (D3) For any k either

$\lambda_{k} = {{0\mspace{14mu} {or}\mspace{14mu} {f_{k}\left( x_{0} \right)}} = {\frac{1}{\sum\limits_{k = 1}^{K}\lambda_{k}}.}}$

Proof of Theorem 2: Parts (A), (B) and (C) can be proven simultaneously. In order to prove the equality in the part (A), we prove that each side is not larger than the other side. For any λ_(k) and a probability measure μ on X, we have

$\begin{matrix} \left. {{\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}(x)}}} \leq 1}\Rightarrow{{\sum\limits_{k = 1}^{K}{\lambda_{k}{\int{f_{k}{\; \mu}}}}} \leq 1} \right. & (79) \\ {\left. \Rightarrow{{\left( {\sum\limits_{k = 1}^{K}\lambda_{k}} \right){\min\limits_{j}{\int{f_{j}{\mu}}}}} \leq 1} \right.{{Therefore},}} & (80) \\ {{\left( {\sum\limits_{k = 1}^{K}\lambda_{k}} \right) \cdot \left( {\max\limits_{\mu}{\min\limits_{j}{\int{f_{j}{\; \mu}}}}} \right)} \leq 1} & (81) \end{matrix}$

Because f_(k) are non-zero, both sides can be divided by

$\max\limits_{\mu}{\min\limits_{j}{\int{f_{j}{{\mu}.}}}}$

Thus,

$\begin{matrix} {{\sum\limits_{k = 1}^{K}\lambda_{k}} \leq \frac{1}{\max_{\mu}{\min_{j}{\int{f_{j}{\mu}}}}}} & (82) \end{matrix}$

which proves one side of the inequality.

In order to prove the other side of this inequality, we start with {x_(k)}_(k=1) ^(∞) a dense subset of X and define

$\begin{matrix} {\Omega_{n} = \left\{ {\left. \underset{\_}{\lambda} \middle| {\forall k} \right.,{\lambda_{k} \geq {0\mspace{14mu} {and}\mspace{14mu} {\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}\left( x_{j} \right)}}}} \leq {1{\forall j}}},{1 \leq j \leq n}} \right\}} & (83) \end{matrix}$

We note that by the definition Ω_(n+1) ⊂Ω_(n). Moreover since f_(k) are continuous functions and {x_(k)} is a dense subset of X, we have ∩_(n)Ω_(n)=Ω, where

$\begin{matrix} {\Omega = {\left\{ {{\underset{\_}{\lambda}{\forall k}},{\lambda_{k} \geq {0\mspace{14mu} {and}\mspace{14mu} {\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}(x)}}}} \leq {1{\forall{x \in X}}}}} \right\}.}} & (84) \end{matrix}$

In addition, for large enough n, Ω_(n) are bounded subsets as f_(k) are non-zero, non-negative and continuous.

Now we prove that as n goes to infinity

$\begin{matrix} {{\max\limits_{\underset{\_}{\lambda} \in \Omega_{n}}{\sum\limits_{k = 1}^{K}\lambda_{k}}}->{\max\limits_{\underset{\_}{\lambda} \in \Omega}{\sum\limits_{k = 1}^{K}\lambda_{k}}}} & (85) \end{matrix}$

For any n choose λ ^((n)) εΩ_(n) such that

$\begin{matrix} {{\max\limits_{\underset{\_}{\lambda} \in \Omega_{n}}{\sum\limits_{k = 1}^{K}\lambda_{k}}} = {\sum\limits_{k = 1}^{K}\lambda_{k}^{(n)}}} & (86) \end{matrix}$

Because λ ^((n)) εΩ_(n) is in a bounded and closed subset of R^(K), there exists a subsequence of {λ ^((n))} that converges to a vector λ. On the other hand, since Ω=∩_(n)Ω_(n), λεΩ. Hence

$\begin{matrix} {{\sum\limits_{k = 1}^{K}\lambda_{k}^{(n)}}->{\sum\limits_{k = 1}^{K}{\lambda_{k}.}}} & (87) \end{matrix}$

On the other hand, we have

$\begin{matrix} {\forall{n:{{\sum\limits_{k = 1}^{K}\lambda_{k}^{(n)}} \geq {\max\limits_{{\underset{\_}{\lambda}}^{\prime} \in \Omega}{\sum\limits_{k = 1}^{K}{\lambda_{k}^{\prime}.}}}}}} & (88) \end{matrix}$

By letting n go to infinity,

$\begin{matrix} {{\sum\limits_{k = 1}^{K}\lambda_{k}} \geq {\max\limits_{{\underset{\_}{\lambda}}^{\prime} \in \Omega}{\sum\limits_{k = 1}^{K}{\lambda_{k}^{\prime}.{Therefore}}}}} & (89) \\ {{{\sum\limits_{k = 1}^{K}\lambda_{k}} = {\max\limits_{\underset{\_}{\lambda^{\prime}} \in \Omega}{\sum\limits_{k = 1}^{K}\lambda_{k}^{\prime}}}},} & (90) \end{matrix}$

which shows the above-claim.

For any n, by the Strong Duality of the Linear Programming, we have

$\begin{matrix} {{\max\limits_{\underset{\_}{\lambda} \in \Omega_{n}}{\sum\limits_{k = 1}^{K}\lambda_{k}}} = {\min \left\{ {{{\sum\limits_{j = 1}^{n}{\beta \left( x_{j} \right)}}{{\beta:\left\{ {x_{1},x_{2},\ldots \mspace{14mu},x_{n}} \right\}}->R^{\geq 0}}},{{\sum\limits_{j = 1}^{n}{{\beta \left( x_{j} \right)}{f_{k}\left( x_{j} \right)}}} \geq {1{\forall k}}}} \right\}}} & (91) \\ {\mspace{79mu} {= {\min \left\{ {\frac{1}{\min_{j}{\int{f_{j}{\mu}}}}{\mu \in {\left\{ {x_{1},x_{2},\ldots \mspace{14mu},x_{n}} \right\}}}} \right\}}}} & (92) \end{matrix}$

Let μ_(n) ε

(X) be chosen such that

$\begin{matrix} {{\max\limits_{\underset{\_}{\lambda} \in \Omega_{n}}{\sum\limits_{k = 1}^{K}\lambda_{k}}} = \frac{1}{\min_{j}{\int{f_{j}{\mu_{n}}}}}} & (93) \end{matrix}$

Because X is a compact space,

(X) is also a compact space with respect to weak-* topology. Hence, there is a subsequence of μ_(n) which converges to μ₀ ε

(X). In particular, we have

$\begin{matrix} {\frac{1}{\min_{j}{\int{f_{j}{\mu_{n}}}}}->\frac{1}{\min_{j}{\int{f_{j}{\mu_{0}}}}}} & (94) \end{matrix}$

On the other hand, we also have

$\begin{matrix} {{{\max\limits_{\underset{\_}{\lambda} \in \Omega_{n}}{\sum\limits_{k = 1}^{K}\lambda_{k}}}->{\max\limits_{\underset{\_}{\lambda} \in \Omega}{\sum\limits_{k = 1}^{K}\lambda_{k}}}}{{Therefore},}} & (95) \\ {{{\max\limits_{\underset{\_}{\lambda} \in \Omega}{\sum\limits_{k = 1}^{K}\lambda_{k}}} = \frac{1}{\min_{j}{\int{f_{j}{\mu_{0}}}}}},} & (96) \end{matrix}$

which completes the proof of parts (A) and (B).

It is noted that because of

$\begin{matrix} {{\sum\limits_{k = 1}^{K}\lambda_{k}} = {\max\limits_{\underset{\_}{\lambda^{\prime}} \in \Omega}{\sum\limits_{k = 1}^{K}\lambda_{k}^{\prime}}}} & (97) \end{matrix}$

we have

$\begin{matrix} {1 = {\left( {\sum\limits_{k = 1}^{K}\lambda_{k}} \right)\left( {\min\limits_{j}{\int{f_{j}{\mu_{0}}}}} \right)}} & (98) \\ {\mspace{14mu} {\leq {\sum\limits_{k = 1}^{K}{\lambda_{k}{\int{f_{k}{\mu_{0}}}}}}}} & (99) \\ {\mspace{14mu} {{= {\int{\sum\limits_{k = 1}^{K}{\lambda_{k}f_{k}{\mu_{0}}}}}}{{Therefore},}}} & (100) \\ {{\int{\left( {{\sum\limits_{k = 1}^{K}{\lambda_{k}f_{k}}} - 1} \right){\mu_{0}}}} \geq 0} & (101) \end{matrix}$

and considering that Σ_(k=1) ^(K)λ_(k)f_(k)−1≦0, we conclude that for μ₀ almost every point x ε X we have

$\begin{matrix} {{\sum\limits_{k = 1}^{K}{\lambda_{k}{f_{k}(x)}}} = 1} & (102) \end{matrix}$

that gives us the part (C).

Part (D1) is a direct consequence of our uniqueness assumption and part (C). Part (D2) is a corollary of parts (D1), (A) and (B). In order to prove part (D3), it is enough to notice that by part (D2) and our assumption we have

$\begin{matrix} {0 = {\sum\limits_{k}{{\lambda_{k}\left( {{f_{k}\left( x_{0} \right)} - {\min\limits_{j}{f_{j}\left( x_{0} \right)}}} \right)}.}}} & (103) \end{matrix}$

Proof of Theorem 1: We apply Theorem 2 in the following setting. Let X=P(R^(K)) be the projective space, i.e. the sphere of radius one in R^(K) after identifying v with −v. For any unit vector v, we define

f _(k)(v)=v ^(T) H* _(k) H _(k) v.   (104)

Hence, for given λ_(k), we have Σ_(k)λ_(k)f_(x)(x)≦1 for any x ε X if and only if I_(K)−Σ_(k)λ_(k)H*_(k)H_(k) is a semi-positive definite matrix. Moreover, a unit vector v is in the null space of I_(K)−Σ_(k)λ_(k)H*_(k)H_(k) if and only if Σ_(k)λ_(k)f_(x)(v)=1. Thus one can easily deduce the desired result from Theorem 2.

With reference now to FIG. 5, with continuing reference to FIGS. 1-3, an exemplary embodiment 500 of a method for determining a beamforming vector or precoder in the short term multicasting scenario that accounts for the hidden convexity in the optimization problem is illustrated. An exemplary algorithm, Algorithm 3 that implements an example of the method 500 is provided herein below in Table 3. In accordance with the method 500 and Algorithm 3, first, the dual formulation is solved and the existence of the optimal solution is checked. The optimal solution can be directly obtained through eigenvalue decomposition of the matrix G. If the multiplicity of the largest eigenvalue of G is more than one, then the greedy procedure described above with respect to method 200 and Algorithm 1 is applied.

TABLE 3 Algorithm 3 Algorithm 3: Input. Channel matrices h_(k), 1 ≦ k ≦ K and SNR threshold α > 0. Output. The beamforming vector w 1 Solve convex problem P₄ and find λ_(k), k = 1,...,K 2 G ← Σ_(k=1) ^(K)λ_(k)H_(k)*H_(k) 3 if the largest eigenvalue of G has multiplicity one then 4   w = eigenvector of the largest eigenvalue G 5 else 6   Perform Algorithm 1 7 end if

The method 500 can begin at step 201, at which the controller 306 of the base station 110 can obtain indications of channel matrices H_(k) for each user k, as described above with regard to the method 200.

At step 502, the controller 306 can find the set of multipliers A that result in a minimum value of α such that

$\left( {\sum\limits_{k = 1}^{K}{\lambda_{k}H_{k}^{*}H_{k}}} \right){\alpha \; I\mspace{14mu} {and}\mspace{14mu} {\sum\limits_{k = 1}^{K}\lambda_{k}}} \geq 1.$

For example, as indicated in Algorithm 3 of Table 3, the controller 306 can solve

₄ to find λ_(k) for k=1, . . . , K using semi-definite programming techniques. Here, we denote Σ_(k=1) ^(K)λ_(k)H*_(k)H_(k) as G.

At step 504, the controller 306 can use the determined set λ to compute G and, at step 506, the controller 306 can compute the largest eigenvalue of G for the determined set λ.

At step 508, the controller 306 can determine whether the largest eigenvalue of G has a multiplicity of one. In other words, the controller 306 determines whether the largest eigenvalue of G is unique. If not, then the method can proceed to step 510, at which the controller 306 can implement the suboptimal greedy procedure and perform steps 202-224 of the method 200 described above. If the largest eigenvalue of G has a multiplicity of one, then the optimal solution exists and the method can proceed to step 512, at which the controller 306 can determine the eigenvector of G corresponding to the largest eigenvalue of G. Further, the controller 306 can set the beamformer matrix w to this eigenvector. As indicated above, utilizing the convexity of the problem under these particular conditions to compute the beamformer is substantially more efficient and less complex than implementing the suboptimal greedy procedure. At step 516, the controller 306 can apply the beamformer w to the multicast data stream symbols x to generate a transmit signal x=wx for receipt by receivers 114 and 116. Thereafter, the method can proceed to step 226, at which the controller 306 can direct the transmitter 309 to transmit the resulting transmit signal to the receivers, as described above with respect to the method 200.

Having described preferred embodiments of link layer multicasting systems and methods (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments disclosed which are within the scope of the invention as outlined by the appended claims. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims. 

1. A beamforming method comprising: obtaining indications of channel matrices for a plurality of receivers; formulating a beamformer matrix as a linear combination of columns of hermitians of the channel matrices; determining coefficients of the hermitians in the linear combination to compute the beamformer matrix such that a lowest reception rate among reception rates of each of the receivers is maximized; and transmitting data signals to the receivers by applying the computed beamformer matrix to data symbols to maximize the lowest reception rate.
 2. The method of claim 1, wherein the determining coefficients of the hermitians comprises successively orthogonalizing the channel matrices.
 3. The method of claim 2, wherein the orthogonalizing comprises determining a given orthogonal channel matrix of a receiver assigned a given index by orthogonailzing the given orthogonal channel matrix to each orthogonal channel matrix of receivers assigned indices that precede or succeed the given index.
 4. The method of claim 3, further comprising selecting a permutation of an assignment of indices to the receivers and performing the successive orthogonalizing for the selected permutation.
 5. The method of claim 4, further comprising selecting a plurality of permutations of an assignment of indices to the receivers and performing the successive orthogonalizing for each of the selected permutations to compute a plurality of corresponding beamforming matrices.
 6. The method of claim 5, further comprising selecting a particular beamforming matrix from the plurality of beamforming matrices that maximizes the lowest reception rate and wherein the transmitting data signals comprises applying the particular beamformer matrix to the data symbols.
 7. The method of claim 1, wherein the determining coefficients further comprises successively calculating each of the coefficients that are non-zero by satisfying a constraint with equality.
 8. The method of claim 7, wherein the determining coefficients further comprises selecting a coefficient at each successive step that minimizes a norm of a corresponding, resulting beamforming matrix.
 9. The method of claim 1, wherein the determining coefficients further comprises accounting for covariances of noise for the receivers.
 10. The method of claim 1, wherein the obtaining comprises receiving a codebook index indicating at least one of a channel direction and channel gain from each of the receivers and wherein the determining comprises assessing a set of matrices that are closer, as determined by a distance metric, to a given codebook matrix denoted by the received codebook index than to codebook matrices denoted by other codebook indices.
 11. A computer readable storage medium comprising a computer readable program, wherein the computer readable program when executed on a computer causes the computer to: obtain indications of channel matrices for a plurality of receivers; formulate a beamformer matrix as a linear combination of columns of hermitians of the channel matrices; determine coefficients of the hermitians in the linear combination to compute the beamformer matrix such that a lowest reception rate among reception rates of each of the receivers is maximized; and apply the computed beamformer matrix to data symbols to generate transmit signals that maximize the lowest reception rate.
 12. The computer readable storage medium of claim 11, wherein the computer readable program when executed on a computer further causes the computer to determine the coefficients of the hermitians by successively orthogonalizing the channel matrices.
 13. A beamforming method comprising: determining a receiver that has a lowest reception rate among reception rates of each of a plurality of receivers by utilizing an expectation over a set of expected channel matrices for multiple time blocks for each of the receivers that is based on a particular beamformer matrix; incrementing the particular beamformer matrix by an increment that is based on a gradient of an objective function denoting the reception rate for the determined receiver with respect to the particular beamformer matrix; iterating the determining and the incrementing until a value based on the increment falls below a threshold to obtain a resultant beamformer matrix; and transmitting data signals to the receivers by applying the resultant beamformer matrix to data symbols to maximize the lowest reception rate.
 14. The method of claim 13, wherein the determining, incrementing, iterating and transmitting is performed for a first time block and wherein the particular beamformer matrix in a first iteration of the determining for the first time block is a resultant beamformer matrix applied to transmit data signals for a second time block that precedes the first time block.
 15. The method of claim 13, further comprising: scaling the particular beamformer matrix to have a unity norm.
 16. The method of claim 15, wherein the value is a norm of the increment.
 17. The method of claim 13, further comprising selecting a step size for the incrementing.
 18. The method of claim 17, wherein the increment is the gradient scaled by the step size.
 19. The method of claim 13, wherein the determining further comprises accounting for covariances of noise for the receivers.
 20. The method of claim 13, further comprising: obtaining the set of expected channel matrices by receiving a codebook index indicating at least one of a channel direction and channel gain from each of the receivers and wherein the determining comprises assessing a set of given matrices that are closer, as determined by a distance metric, to a given codebook matrix denoted by the received codebook index than to codebook matrices denoted by other codebook indices. 